'''

封装：保证数据的安全 -> 私有化 属性和性数只能被自己调用  不会被外部调用
    属性封装:在定义属性的时候使用__定义  只能在类内部调用或者修改  外部需要通过公有函数间接操作
    函数封装：定义函数的时候使用__定义  只能在类内部调用或者修改   外部需要通过公有函数间接操作

继承：
    子类可以继承父类  父类的所有公有属性和函数都会被子类继承

'''


class Order():
    def __init__(self,oid,price):
        self.__oid = oid#__进行私有属性
        self.__price = price#公有属性

    def getOid(self):
        return self.__oid
    def getPrice(self):
        return self.__price
    def setOid(self,price):
        self.__price= price
    def __test(self):
        print("测试一下")
    def callTest(self):
        self.__test()


class Father():
    father = "父类"
    def __init__(self,fatherName,fatherAge):
        self.fatherName = fatherName
        self.fatherAge = fatherAge

    def work(self):
        print("努力工作")
    def __siyou(self):
        print("私有函数")
class Son(Father):
    son = "子类"
    def __init__(self,name,age,fatherName,fatherAge):
        self.name = name
        self.age = age
        super().__init__(fatherName, fatherAge)
if __name__ == '__main__':
    order = Order(1,100)
    print(order.getOid())
    # order.__test()
    order.callTest()

    son = Son("子类",21,"父类",50)
    print(son.father)
    print(son.son)
    print(son.name)
    print(son.age)
    print(son.fatherName)
    print(son.fatherAge)